//练习1：
//        已知一个数列：f(20) = 1,f(21) = 4,f(n+2) = 2*f(n+1)+f(n),
//        其中n是大于0的整数，求f(10)的值。
public class Test {
    public static int args(int n){
        if(n == 20){
            return 1;
        }else if(n == 21){
            return 4;
        }else{
           //错误的 return  2*args(n+1)+args(n);
            return args(n+2)-args(n+1);  //朝着已知的方向走20.21
        }
    }


//    练习2：
//    已知有一个数列：f(0) = 1,f(1) = 4,
//    f(n+2)=2*f(n+1) + f(n),其中n是大于0的整数，求f(10)的值。
    public static int args1(int n){
        if(n == 0){
            return 1;
        }else if(n == 1){
            return 4;
        }else{
            return 2*args1(n-1)+args1(n-2);//朝着已知的方向走 0,1
        }
    }
}
